# deepseek_api.py
import requests
import json
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

class DeepSeekAPI:
    def __init__(self, api_key, api_url, model='DeepSeek-V3'):
        self.api_key = api_key
        self.api_url = api_url
        self.model = model
        self.headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {api_key}'
        }
    
    def chat_completion(self, messages, max_tokens=1000, temperature=0.7):
        """调用DeepSeek聊天补全API"""
        try:
            data = {
                'model': self.model,
                'messages': messages,
                'max_tokens': max_tokens,
                'temperature': temperature,
                'stream': False
            }
            
            response = requests.post(
                self.api_url,
                headers=self.headers,
                data=json.dumps(data),
                timeout=30
            )
            
            if response.status_code == 200:
                result = response.json()
                return result['choices'][0]['message']['content']
            else:
                error_msg = f"API请求失败: {response.status_code} - {response.text}"
                logger.error(error_msg)
                return self._get_fallback_response(messages[-1]['content'])
                
        except Exception as e:
            logger.error(f"API调用异常: {e}")
            return self._get_fallback_response(messages[-1]['content'])
    
    def _get_fallback_response(self, user_input):
        """降级响应"""
        fallback_responses = [
            "我正在思考如何更好地帮助您...",
            "让我为您提供一些写作建议...",
            "基于您的需求，我建议..."
        ]
        
        import random
        base_response = random.choice(fallback_responses)
        return f"{base_response}\n\n（温馨提示：当前为降级模式，请检查API配置）"
    
    def generate_article(self, topic, style="正式", length="中等"):
        """生成文章"""
        prompt = f"""请以{style}的风格，写一篇关于"{topic}"的文章。

要求：
- 长度：{length}
- 风格：{style}
- 主题明确，结构清晰
- 语言优美，逻辑连贯

请直接开始写作："""
        
        messages = [
            {"role": "system", "content": "你是一个专业的写作助手，擅长各种文体的写作。"},
            {"role": "user", "content": prompt}
        ]
        
        return self.chat_completion(messages)
    
    def improve_writing(self, text, improvement_type="语法优化"):
        """改进写作"""
        improvements = {
            "语法优化": "检查并修正语法错误，优化表达",
            "润色提升": "提升文采，让文字更优美",
            "简洁表达": "让表达更加简洁明了",
            "正式化": "让文字更加正式专业"
        }
        
        prompt = f"""请对以下文本进行{improvement_type}：

{improvements[improvement_type]}

原文：
{text}

请直接给出优化后的文本："""
        
        messages = [
            {"role": "system", "content": "你是一个专业的文本编辑助手。"},
            {"role": "user", "content": prompt}
        ]
        
        return self.chat_completion(messages)
    
    def generate_outline(self, topic):
        """生成大纲"""
        prompt = f"""请为"{topic}"生成一个详细的文章大纲。

要求：
1. 包含引言、正文、结论
2. 正文部分至少3个主要论点
3. 每个论点下有2-3个支持点

请以清晰的格式输出大纲："""
        
        messages = [
            {"role": "system", "content": "你擅长规划文章结构和逻辑框架。"},
            {"role": "user", "content": prompt}
        ]
        
        return self.chat_completion(messages)